home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / pretty18.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  37.3 KB  |  1,389 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "pretty.h"
  9. /*No:CALL_INFIX_LE.arguments*/
  10. T0* r932add_comment(T932* C,T0* a1){
  11. T0* R=NULL;
  12. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  13. R=(T0*)C;
  14. }
  15. else {
  16. {T529*n=malloc(sizeof(*n));
  17. *n=M529;
  18. r529make(n,(T0*)C,a1);
  19. R=(T0*)n;
  20. }
  21. }
  22. /*FI*/return R;
  23. }
  24. int r932to_integer(T932* C){
  25. int R=0;
  26. r932error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T932*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  27. return R;
  28. }
  29. int r932is_a(T932* C,T0* a1){
  30. int R=0;
  31. R=X291is_a(X291run_type((((T932*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  32. /*IF*/if (!(R)) {
  33. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T932*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  34. r932error(X662start_position(a1),((T0*)ms4_662));
  35. }
  36. /*FI*/return R;
  37. }
  38. /*No:CALL_INFIX_LE.is_current*/
  39. void r932make(T932* C,T0* a1,T0* a2,T0* a3){
  40. T0* _eal=NULL;
  41. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  42. r683add_position(a2);
  43. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  44. r683fatal_error(((T683*)(oBC364eh)),b1);
  45. }/*]*/
  46. }
  47. /*FI*/{T454*n=malloc(sizeof(*n));
  48. *n=M454;
  49. r454make(n,r932operator(),a2);
  50. C->_feature_name=(T0*)n;
  51. }
  52. {T431*n=malloc(sizeof(*n));
  53. *n=M431;
  54. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  55. /*]*/
  56. _eal=(T0*)n;
  57. }
  58. r932make_call_1(C,a1,(((T932*)C))->_feature_name/*24*/,_eal);
  59. }
  60. void r932print_as_target(T932* C){
  61. r238put_character(((T238*)(oBC364fmt)),'\50');
  62. r932pretty_print(C);
  63. r238put_character(((T238*)(oBC364fmt)),'\51');
  64. r238put_character(((T238*)(oBC364fmt)),'\56');
  65. }
  66. /*No:CALL_INFIX_LE.nb_errors*/
  67. /*No:CALL_INFIX_LE.feature_name*/
  68. /*No:CALL_INFIX_LE.fz_iinaiv*/
  69. /*No:CALL_INFIX_LE.run_feature*/
  70. /*No:CALL_INFIX_LE.start_position*/
  71. /*No:CALL_INFIX_LE.target*/
  72. /*No:CALL_INFIX_LE.precedence*/
  73. T0* r932to_runnable(T932* C,T0* a1){
  74. T0* R=NULL;
  75. T0* _tla=NULL;
  76. T0* _a=NULL;
  77. /*IF*/if (((((T932*)C))->_current_type/*4*/)==((void*)(NULL))) {
  78. r932to_runnable_0(C,a1);
  79. _a=r431to_runnable(((T431*)((((T932*)C))->_arguments/*20*/)),a1);
  80. /*IF*/if ((_a)==((void*)(NULL))) {
  81. r932error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  82. }
  83. else {
  84. C->_arguments=_a;
  85. }
  86. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  87. r431match_with(((T431*)((((T932*)C))->_arguments/*20*/)),(((T932*)C))->_run_feature/*12*/);
  88. }
  89. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  90. _tla=(((T932*)C))->_result_type/*16*/;
  91. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  92. case 239: 
  93. break;
  94. default:
  95. _tla=NULL;
  96. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  97. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/));
  98. }
  99. /*FI*/}
  100. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  101. R=(T0*)C;
  102. }
  103. /*FI*/}
  104. else {
  105. R=r932twin(C);
  106. /*[IRF3.3set_current_type*/((((T932*)(((T932*)R))))->_current_type)=(NULL);
  107. /*]*/
  108. R=r932to_runnable(((T932*)R),a1);
  109. }
  110. /*FI*/return R;
  111. }
  112. void r932bracketed_pretty_print(T932* C){
  113. r238put_character(((T238*)(oBC364fmt)),'\50');
  114. r932pretty_print(C);
  115. r238put_character(((T238*)(oBC364fmt)),'\51');
  116. }
  117. /*No:CALL_INFIX_LE.result_type*/
  118. T0* r932twin(T932* C){
  119. T0* R=NULL;
  120. R=malloc(sizeof(*C));
  121. *((T932*)R)=*C;
  122. return R;
  123. }
  124. /*No:CALL_INFIX_LE.set_current_type*/
  125. /*No:CALL_INFIX_LE.us_le*/
  126. T0* r932operator(void){
  127. T0* R=NULL;
  128. R=((T0*)ms35_473);
  129. return R;
  130. }
  131. /*No:CALL_INFIX_LE.atomic_precedence*/
  132. void r932pretty_print(T932* C){
  133. /*IF*/if ((X662precedence((((T932*)C))->_target/*8*/))==(13)) {
  134. X662pretty_print((((T932*)C))->_target/*8*/);
  135. r932print_op(C);
  136. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  137. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/);
  138. }
  139.  else if ((6)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/))) {
  140. X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/);
  141. }
  142. else {
  143. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/);
  144. }
  145. /*FI*/}
  146.  else if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  147. /*IF*/if ((X662precedence((((T932*)C))->_target/*8*/))>=(6)) {
  148. X662bracketed_pretty_print((((T932*)C))->_target/*8*/);
  149. }
  150. else {
  151. X662pretty_print((((T932*)C))->_target/*8*/);
  152. }
  153. /*FI*/r932print_op(C);
  154. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/);
  155. }
  156.  else if ((6)<=(X662precedence((((T932*)C))->_target/*8*/))) {
  157. X662bracketed_pretty_print((((T932*)C))->_target/*8*/);
  158. r932print_op(C);
  159. /*IF*/if ((6)<=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/))) {
  160. X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/);
  161. }
  162. else {
  163. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/);
  164. }
  165. /*FI*/}
  166. else {
  167. X662pretty_print((((T932*)C))->_target/*8*/);
  168. r932print_op(C);
  169. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/);
  170. }
  171. /*FI*/}
  172. void r932print_op(T932* C){
  173. r238put_character(((T238*)(oBC364fmt)),'\40');
  174. /*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T932*)C))->_feature_name/*24*/));
  175. r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
  176. }/*]*/
  177. r238put_character(((T238*)(oBC364fmt)),'\40');
  178. }
  179. /*No:CALL_INFIX_LE.current_type*/
  180. void r932make_call_1(T932* C,T0* a1,T0* a2,T0* a3){
  181. C->_target=a1;
  182. C->_feature_name=a2;
  183. C->_arguments=a3;
  184. }
  185. /*No:CALL_INFIX_LE.is_manifest_string*/
  186. /*No:CALL_INFIX_LE.is_void*/
  187. void r932to_runnable_0(T932* C,T0* a1){
  188. C->_current_type=a1;
  189. r932cpc_to_runnable(C,a1);
  190. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T932*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  191. /*IF*/if (((((T932*)C))->_result_type/*16*/)==((void*)(NULL))) {
  192. r683add_position(X496start_position((((T932*)C))->_run_feature/*12*/));
  193. r932error((((T454*)((T454*)((((T932*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  194. }
  195.  else if (X291is_like_current((((T932*)C))->_result_type/*16*/)) {
  196. C->_result_type=X662result_type((((T932*)C))->_target/*8*/);
  197. }
  198. /*FI*/}
  199. void r932cpc_to_runnable(T932* C,T0* a1){
  200. T0* _rc=NULL;
  201. T0* _t=NULL;
  202. _t=X662to_runnable((((T932*)C))->_target/*8*/,a1);
  203. /*IF*/if ((_t)==((void*)(NULL))) {
  204. r683add_position(X662start_position((((T932*)C))->_target/*8*/));
  205. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  206. r683fatal_error(((T683*)(oBC364eh)),b1);
  207. }/*]*/
  208. }
  209. /*FI*/C->_target=_t;
  210. _rc=X291run_class(X662result_type((((T932*)C))->_target/*8*/));
  211. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  212. r576update((((T932*)C))->_target/*8*/,(((T932*)C))->_run_feature/*12*/);
  213. }
  214. void r932error(T0* a1,T0* a2){
  215. r683add_position(a1);
  216. r683error(((T683*)(oBC364eh)),a2);
  217. }
  218. /*No:CALL_INFIX_LE.fatal_error*/
  219. /*No:CALL_INFIX_LE.fz_bad_argument*/
  220. /*No:CALL_INFIX_LE.arg1*/
  221. /*No:PARSER_BUFFER.make*/
  222. int fBC676buffer=0;
  223. T9 oBC676buffer=NULL;
  224. T9 r676buffer(void){
  225. if (fBC676buffer==0){
  226. T9 R=NULL;
  227. fBC676buffer=1;
  228. R=calloc(4096,sizeof(char));
  229. oBC676buffer=R;}
  230. return oBC676buffer;}
  231. /*No:PARSER_BUFFER.path*/
  232. int r676read_file(T0* a1){
  233. int R=0;
  234. T9 _b=NULL;
  235. T0* _line=NULL;
  236. char _c=0;
  237. int _nb_read=0;
  238. int _i=0;
  239. int _file=0;
  240. void* _p=0;
  241. _p=r7to_external(((T7*)a1));
  242. _file=open(_p,O_RDONLY,0);/*IF*/if ((_file)>=(0)) {
  243. _b=r676buffer();
  244. _line=r676next_line(0);
  245. _line=r676next_line(1);
  246. R=1;
  247. _nb_read=4096;
  248. while (!((_nb_read)<(4096))) {
  249. _nb_read=read(_file,_b,4096);
  250. _i=0;
  251. while (!((_i)==(_nb_read))) {
  252. _c=(_b)[_i];
  253. /*IF*/if ((_c)==('\n')) {
  254. R=(R)+(1);
  255. _line=r676next_line(R);
  256. }
  257.  else if ((_c)==('\15')) {
  258. }
  259. else {
  260. r7extend(((T7*)_line),_c);
  261. }
  262. /*FI*/_i=(_i)+(1);
  263. }
  264. }
  265. /*IF*/if (/*(IRF4.7empty*/((((T7*)((T7*)_line)))->_count/*4*/)==(0)/*)*/) {
  266. R=(R)-(1);
  267. }
  268. /*FI*/_file=close(_file);
  269. }
  270. else {
  271. R=-(1);
  272. }
  273. /*FI*/return R;
  274. }
  275. T0* r676item(int a1){
  276. T0* R=NULL;
  277. R=/*(IRF4.6item*/((((T927*)((T927*)(oBC676text))))->_storage/*0*/)[a1]/*)*/;
  278. return R;
  279. }
  280. void r676load_file(T676* C,T0* a1){
  281. C->_count=r676read_file(a1);
  282. /*IF*/if (((((T676*)C))->_count/*4*/)>=(0)) {
  283. C->_path=a1;
  284. }
  285. else {
  286. C->_path=NULL;
  287. }
  288. /*FI*/}
  289. /*No:PARSER_BUFFER.is_ready*/
  290. T0*oBC676text=NULL;
  291. /*No:PARSER_BUFFER.medium_line_size*/
  292. /*No:PARSER_BUFFER.buffer_size*/
  293. /*No:PARSER_BUFFER.count*/
  294. /*No:PARSER_BUFFER.unset_is_ready*/
  295. T0* r676next_line(int a1){
  296. T0* R=NULL;
  297. /*IF*/if ((a1)<=((((T927*)((T927*)(oBC676text))))->_upper/*8*/)) {
  298. R=/*(IRF4.6item*/((((T927*)((T927*)(oBC676text))))->_storage/*0*/)[a1]/*)*/;
  299. /*[IRF3.3clear*/((((T7*)(((T7*)R))))->_count)=(0);
  300. /*]*/
  301. }
  302. else {
  303. {T7*n=malloc(sizeof(*n));
  304. *n=M7;
  305. r7make(n,80);
  306. R=(T0*)n;
  307. }
  308. r927add_last(((T927*)(oBC676text)),R);
  309. }
  310. /*FI*/return R;
  311. }
  312. T0* r629add_comment(T629* C,T0* a1){
  313. T0* R=NULL;
  314. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  315. R=(T0*)C;
  316. }
  317. /*AF*/else {
  318. {T46*n=malloc(sizeof(*n));
  319. *n=M46;
  320. r46make(n,(T0*)C,a1);
  321. R=(T0*)n;
  322. }
  323. }
  324. /*FI*/return R;
  325. }
  326. void r629make(T629* C,T0* a1,T0* a2){
  327. C->_left_side=a1;
  328. C->_right_side=a2;
  329. }
  330. /*No:ASSIGNMENT.nb_errors*/
  331. T0* r629start_position(T629* C){
  332. T0* R=NULL;
  333. R=X662start_position((((T629*)C))->_left_side/*8*/);
  334. return R;
  335. }
  336. T0* r629to_runnable(T629* C,T0* a1){
  337. T0* R=NULL;
  338. T0* _e=NULL;
  339. T0* _right_run_type=NULL;
  340. T0* _left_run_type=NULL;
  341. /*IF*/if (((((T629*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  342. C->_run_compound=a1;
  343. _e=X662to_runnable((((T629*)C))->_left_side/*8*/,r629current_type(C));
  344. /*IF*/if ((_e)==((void*)(NULL))) {
  345. r629error(X662start_position((((T629*)C))->_left_side/*8*/),((T0*)ms62_470));
  346. }
  347. else {
  348. C->_left_side=_e;
  349. }
  350. /*FI*/_e=X662to_runnable((((T629*)C))->_right_side/*12*/,r629current_type(C));
  351. /*IF*/if ((_e)==((void*)(NULL))) {
  352. r629error(X662start_position((((T629*)C))->_right_side/*12*/),((T0*)ms63_470));
  353. }
  354. else {
  355. C->_right_side=_e;
  356. }
  357. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  358. /*IF*/if (!(X662is_a((((T629*)C))->_right_side/*12*/,(((T629*)C))->_left_side/*8*/))) {
  359. r629error(X662start_position((((T629*)C))->_left_side/*8*/),((T0*)ms2_629));
  360. }
  361. /*FI*/}
  362. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  363. _left_run_type=X291run_type(r629left_type(C));
  364. _right_run_type=X291run_type(r629right_type(C));
  365. /*IF*/if (X291is_reference(_left_run_type)) {
  366. /*IF*/if (X291is_reference(_right_run_type)) {
  367. }
  368. else {
  369. X291used_as_reference(_right_run_type);
  370. }
  371. /*FI*/}
  372. else {
  373. /*IF*/if (X291is_reference(_right_run_type)) {
  374. /*IF*/if (X662is_void((((T629*)C))->_right_side/*12*/)) {
  375. r683add_position(X662start_position((((T629*)C))->_right_side/*12*/));
  376. /*[IRF3.6append*/{T0* b1=((T0*)ms3_629);
  377. r7append(((T7*)(oBC683explanation)),b1);
  378. }/*]*/
  379. r683add_type(r629left_type(C),((T0*)ms4_629));
  380. r683print_as_error(((T683*)(oBC364eh)));
  381. }
  382. else {
  383. r629warning(X662start_position((((T629*)C))->_left_side/*8*/),((T0*)ms5_629));
  384. }
  385. /*FI*/}
  386. /*FI*/}
  387. /*FI*/}
  388. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  389. R=(T0*)C;
  390. }
  391. /*FI*/}
  392. else {
  393. {T629*n=malloc(sizeof(*n));
  394. *n=M629;
  395. r629make(n,(((T629*)C))->_left_side/*8*/,(((T629*)C))->_right_side/*12*/);
  396. R=(T0*)n;
  397. }
  398. R=r629to_runnable(((T629*)R),a1);
  399. }
  400. /*FI*/return R;
  401. }
  402. void r629pretty_print_assignment(T0* a1,T0* a2,T0* a3){
  403. int _semi_colon_flag=0;
  404. X662pretty_print(a1);
  405. r238put_character(((T238*)(oBC364fmt)),'\40');
  406. r238put_string(((T238*)(oBC364fmt)),a2);
  407. r238put_character(((T238*)(oBC364fmt)),'\40');
  408. _semi_colon_flag=(((T238*)((T238*)(oBC364fmt))))->_semi_colon_flag/*25*/;
  409. r238level_incr(((T238*)(oBC364fmt)));
  410. /*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(0);
  411. /*]*/
  412. X662pretty_print(a3);
  413. /*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(_semi_colon_flag);
  414. /*]*/
  415. /*IF*/if (_semi_colon_flag) {
  416. r238put_character(((T238*)(oBC364fmt)),'\73');
  417. }
  418. /*FI*/r238level_decr(((T238*)(oBC364fmt)));
  419. }
  420. T0* r629right_type(T629* C){
  421. T0* R=NULL;
  422. R=X662result_type((((T629*)C))->_right_side/*12*/);
  423. return R;
  424. }
  425. /*No:ASSIGNMENT.left_side*/
  426. /*No:ASSIGNMENT.pretty_print*/
  427. T0* r629current_type(T629* C){
  428. T0* R=NULL;
  429. /*IF*/if (((((T629*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  430. R=(((T592*)((T592*)((((T629*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  431. }
  432. /*FI*/return R;
  433. }
  434. /*No:ASSIGNMENT.run_compound*/
  435. /*No:ASSIGNMENT.right_side*/
  436. /*No:ASSIGNMENT.fz_blhsoa*/
  437. /*No:ASSIGNMENT.fz_brhsoa*/
  438. void r629error(T0* a1,T0* a2){
  439. r683add_position(a1);
  440. r683error(((T683*)(oBC364eh)),a2);
  441. }
  442. /*No:ASSIGNMENT.end_mark_comment*/
  443. T0* r629left_type(T629* C){
  444. T0* R=NULL;
  445. R=X662result_type((((T629*)C))->_left_side/*8*/);
  446. return R;
  447. }
  448. void r629warning(T0* a1,T0* a2){
  449. r683add_position(a1);
  450. r683warning(((T683*)(oBC364eh)),a2);
  451. }
  452. T0*oBC646tmp_written_mark=NULL;
  453. int r239has_creation(T239* C,T0* a1){
  454. int R=0;
  455. R=X291has_creation((((T239*)C))->_run_type/*8*/,a1);
  456. return R;
  457. }
  458. /*No:TYPE_LIKE_ARGUMENT.is_anchored*/
  459. int r239is_array(T239* C){
  460. int R=0;
  461. R=X291is_array((((T239*)C))->_run_type/*8*/);
  462. return R;
  463. }
  464. int r239is_a(T239* C,T0* a1){
  465. int R=0;
  466. R=X291is_a((((T239*)C))->_run_type/*8*/,a1);
  467. return R;
  468. }
  469. int r239is_pointer(T239* C){
  470. int R=0;
  471. R=X291is_pointer((((T239*)C))->_run_type/*8*/);
  472. return R;
  473. }
  474. /*No:TYPE_LIKE_ARGUMENT.run_type*/
  475. int r239is_string(T239* C){
  476. int R=0;
  477. R=X291is_string((((T239*)C))->_run_type/*8*/);
  478. return R;
  479. }
  480. /*No:TYPE_LIKE_ARGUMENT.is_like_feature*/
  481. /*No:TYPE_LIKE_ARGUMENT.is_like_current*/
  482. T0* r239ultimate_run_type(T239* C,T0* a1){
  483. T0* R=NULL;
  484. T0* _t=NULL;
  485. _t=a1;
  486. while (!((_t)==((void*)(X291run_type(_t))))) {
  487. _t=X291run_type(_t);
  488. }
  489. /*IF*/if (((((T239*)C))->_run_type/*8*/)==((void*)(NULL))) {
  490. C->_run_type=_t;
  491. R=(T0*)C;
  492. }
  493. else {
  494. R=r239twin(C);
  495. /*[IRF3.3set_run_type*/((((T239*)(((T239*)R))))->_run_type)=(_t);
  496. /*]*/
  497. }
  498. /*FI*/return R;
  499. }
  500. void r239make(T239* C,T0* a1,T0* a2){
  501. C->_start_position=a1;
  502. C->_like_what=a2;
  503. r7copy(((T7*)(oBC646tmp_written_mark)),((T0*)ms113_470));
  504. r7append(((T7*)(oBC646tmp_written_mark)),(((T886*)((T886*)((((T239*)C))->_like_what/*12*/))))->_to_string/*8*/);
  505. C->_written_mark=r902item(oBC646tmp_written_mark);
  506. }
  507. void r239anchor_cycle_start(T239* C){
  508. int _i=0;
  509. /*IF*/if (((((T907*)((T907*)(oBC646visited))))->_upper/*8*/)<(0)) {
  510. r907add_last(((T907*)(oBC646visited)),(((T239*)C))->_start_position/*4*/);
  511. }
  512.  else if (r907fast_has(((T907*)(oBC646visited)),(((T239*)C))->_start_position/*4*/)) {
  513. _i=0;
  514. while (!((_i)>((((T907*)((T907*)(oBC646visited))))->_upper/*8*/))) {
  515. r683add_position(/*(IRF4.6item*/((((T907*)((T907*)(oBC646visited))))->_storage/*0*/)[_i]/*)*/);
  516. _i=(_i)+(1);
  517. }
  518. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms64_470);
  519. r683fatal_error(((T683*)(oBC364eh)),b1);
  520. }/*]*/
  521. }
  522. else {
  523. r907add_last(((T907*)(oBC646visited)),(((T239*)C))->_start_position/*4*/);
  524. }
  525. /*FI*/}
  526. /*No:TYPE_LIKE_ARGUMENT.fz_bad_anchor*/
  527. /*No:TYPE_LIKE_ARGUMENT.start_position*/
  528. /*No:TYPE_LIKE_ARGUMENT.like_what*/
  529. int r239is_character(T239* C){
  530. int R=0;
  531. R=X291is_character((((T239*)C))->_run_type/*8*/);
  532. return R;
  533. }
  534. /*No:TYPE_LIKE_ARGUMENT.written_mark*/
  535. T0* r239to_runnable(T239* C,T0* a1){
  536. T0* R=NULL;
  537. T0* _t=NULL;
  538. r239anchor_cycle_start(C);
  539. _t=X291to_runnable((((T886*)((T886*)((((T239*)C))->_like_what/*12*/))))->_result_type/*20*/,a1);
  540. /*IF*/if ((_t)==((void*)(NULL))) {
  541. r239error((((T239*)C))->_start_position/*4*/,((T0*)ms54_470));
  542. }
  543. /*FI*/R=r239ultimate_run_type(C,_t);
  544. r239anchor_cycle_end(C);
  545. return R;
  546. }
  547. /*No:TYPE_LIKE_ARGUMENT.is_run_type*/
  548. /*No:TYPE_LIKE_ARGUMENT.rank*/
  549. /*No:TYPE_LIKE_ARGUMENT.is_formal_generic*/
  550. T0* r239generic_list(T239* C){
  551. T0* R=NULL;
  552. /*IF*/if (r239is_generic(C)) {
  553. R=X291generic_list((((T239*)C))->_run_type/*8*/);
  554. }
  555. else {
  556. r239fatal_error_generic_list(C);
  557. }
  558. /*FI*/return R;
  559. }
  560. int r239is_real(T239* C){
  561. int R=0;
  562. R=X291is_real((((T239*)C))->_run_type/*8*/);
  563. return R;
  564. }
  565. T0* r239twin(T239* C){
  566. T0* R=NULL;
  567. R=malloc(sizeof(*C));
  568. *((T239*)R)=*C;
  569. return R;
  570. }
  571. int r239is_bit(T239* C){
  572. int R=0;
  573. R=X291is_bit((((T239*)C))->_run_type/*8*/);
  574. return R;
  575. }
  576. void r239fatal_error_generic_list(T239* C){
  577. r683add_type((T0*)C,((T0*)ms12_291));
  578. r683print_as_fatal_error(((T683*)(oBC364eh)));
  579. }
  580. /*No:TYPE_LIKE_ARGUMENT.pretty_print*/
  581. T0* r239smallest_ancestor(T239* C,T0* a1){
  582. T0* R=NULL;
  583. R=X291smallest_ancestor((((T239*)C))->_run_type/*8*/,a1);
  584. return R;
  585. }
  586. int r239is_boolean(T239* C){
  587. int R=0;
  588. R=X291is_boolean((((T239*)C))->_run_type/*8*/);
  589. return R;
  590. }
  591. /*No:TYPE_LIKE_ARGUMENT.set_run_type*/
  592. int r239is_double(T239* C){
  593. int R=0;
  594. R=X291is_double((((T239*)C))->_run_type/*8*/);
  595. return R;
  596. }
  597. T0* r239run_class(T239* C){
  598. T0* R=NULL;
  599. R=r604run_class((((T239*)C))->_run_type/*8*/);
  600. return R;
  601. }
  602. T0* r239run_time_mark(T239* C){
  603. T0* R=NULL;
  604. /*IF*/if (((((T239*)C))->_run_type/*8*/)!=((void*)(NULL))) {
  605. R=X291run_time_mark((((T239*)C))->_run_type/*8*/);
  606. }
  607. /*FI*/return R;
  608. }
  609. int r239is_a_in(T239* C,T0* a1,T0* a2){
  610. int R=0;
  611. T0* _ct=NULL;
  612. T0* _t2=NULL;
  613. T0* _t1=NULL;
  614. /*IF*/if (((((T239*)C))->_written_mark/*16*/)==((void*)(X291written_mark(a1)))) {
  615. R=1;
  616. }
  617. else {
  618. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  619. _t1=r239to_runnable(C,_ct);
  620. _t2=X291to_runnable(a1,_ct);
  621. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  622. R=1;
  623. }
  624. else {
  625. R=X291is_a(_t1,_t2);
  626. }
  627. /*FI*/}
  628. /*FI*/return R;
  629. }
  630. T0* r239look_up_for(T239* C,T0* a1,T0* a2){
  631. T0* R=NULL;
  632. R=r605look_up_for(((T605*)(r239base_class(C))),a1,a2);
  633. return R;
  634. }
  635. /*No:TYPE_LIKE_ARGUMENT.fz_cad*/
  636. T0* r239expanded_initializer(T239* C){
  637. T0* R=NULL;
  638. R=X291expanded_initializer((((T239*)C))->_run_type/*8*/);
  639. return R;
  640. }
  641. /*No:TYPE_LIKE_ARGUMENT.fz_dot*/
  642. int r239is_generic(T239* C){
  643. int R=0;
  644. R=X291is_generic((((T239*)C))->_run_type/*8*/);
  645. return R;
  646. }
  647. /*No:TYPE_LIKE_ARGUMENT.used_as_reference*/
  648. int r239is_reference(T239* C){
  649. int R=0;
  650. R=X291is_reference((((T239*)C))->_run_type/*8*/);
  651. return R;
  652. }
  653. void r239error(T0* a1,T0* a2){
  654. r683add_position(a1);
  655. r683error(((T683*)(oBC364eh)),a2);
  656. }
  657. T0* r239base_class(T239* C){
  658. T0* R=NULL;
  659. T0* _bcn=NULL;
  660. _bcn=r239base_class_name(C);
  661. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  662. R=r451base_class(((T451*)_bcn));
  663. }
  664. else {
  665. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  666. r7append(((T7*)(oBC683explanation)),b1);
  667. }/*]*/
  668. r683add_type((T0*)C,((T0*)ms67_470));
  669. r683print_as_fatal_error(((T683*)(oBC364eh)));
  670. }
  671. /*FI*/return R;
  672. }
  673. /*No:TYPE_LIKE_ARGUMENT.fatal_error*/
  674. int r239is_any(T239* C){
  675. int R=0;
  676. R=X291is_any((((T239*)C))->_run_type/*8*/);
  677. return R;
  678. }
  679. T0* r239base_class_name(T239* C){
  680. T0* R=NULL;
  681. R=X291base_class_name((((T239*)C))->_run_type/*8*/);
  682. return R;
  683. }
  684. T0*oBC646visited=NULL;
  685. int r239is_expanded(T239* C){
  686. int R=0;
  687. R=X291is_expanded((((T239*)C))->_run_type/*8*/);
  688. return R;
  689. }
  690. /*No:TYPE_LIKE_ARGUMENT.fz_like_foo*/
  691. int r239is_basic_eiffel_expanded(T239* C){
  692. int R=0;
  693. R=X291is_basic_eiffel_expanded((((T239*)C))->_run_type/*8*/);
  694. return R;
  695. }
  696. int r239is_none(T239* C){
  697. int R=0;
  698. R=X291is_none((((T239*)C))->_run_type/*8*/);
  699. return R;
  700. }
  701. int r239is_integer(T239* C){
  702. int R=0;
  703. R=X291is_integer((((T239*)C))->_run_type/*8*/);
  704. return R;
  705. }
  706. void r239anchor_cycle_end(T239* C){
  707. /*IF*/if (((((T239*)C))->_start_position/*4*/)==((void*)(/*(IRF4.5first*//*(IRF4.6item*/((((T907*)((T907*)(oBC646visited))))->_storage/*0*/)[0]/*)*//*)*/))) {
  708. /*[IRF3.3clear*/((((T907*)(((T907*)(oBC646visited)))))->_upper)=(-(1));
  709. /*]*/
  710. }
  711. /*FI*/}
  712. T0* r342add_comment(T342* C,T0* a1){
  713. T0* R=NULL;
  714. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  715. R=(T0*)C;
  716. }
  717. else {
  718. {T529*n=malloc(sizeof(*n));
  719. *n=M529;
  720. r529make(n,(T0*)C,a1);
  721. R=(T0*)n;
  722. }
  723. }
  724. /*FI*/return R;
  725. }
  726. /*No:INTEGER_CONSTANT.to_integer*/
  727. int r342is_a(T342* C,T0* a1){
  728. int R=0;
  729. R=X291is_a(/*(IRF4.4run_type*/((T0*)((T788*)r342result_type()))/*)*/,X291run_type(X662result_type(a1)));
  730. /*IF*/if (!(R)) {
  731. r683add_position((((T342*)C))->_start_position/*8*/);
  732. r342error(X662start_position(a1),((T0*)ms4_662));
  733. }
  734. /*FI*/return R;
  735. }
  736. /*No:INTEGER_CONSTANT.is_current*/
  737. void r342make(T342* C,int a1,T0* a2){
  738. C->_value=a1;
  739. C->_start_position=a2;
  740. }
  741. void r342print_as_target(T342* C){
  742. r238put_character(((T238*)(oBC364fmt)),'\50');
  743. /*[IRF3.6pretty_print*/{T342* C1=C;
  744. r238put_string(((T238*)(oBC364fmt)),/*(IRF4.6to_string*/r2to_string(((int)((((T342*)C1))->_value/*12*/)))/*)*/);
  745. }/*]*/
  746. r238put_character(((T238*)(oBC364fmt)),'\51');
  747. r238put_character(((T238*)(oBC364fmt)),'\56');
  748. }
  749. /*No:INTEGER_CONSTANT.to_string*/
  750. /*No:INTEGER_CONSTANT.fz_iinaiv*/
  751. void r342unary_minus(T342* C){
  752. C->_value=-((((T342*)C))->_value/*12*/);
  753. }
  754. /*No:INTEGER_CONSTANT.start_position*/
  755. /*No:INTEGER_CONSTANT.precedence*/
  756. T0* r342to_runnable(T342* C,T0* a1){
  757. T0* R=NULL;
  758. /*IF*/if (((((T342*)C))->_current_type/*4*/)==((void*)(NULL))) {
  759. C->_current_type=a1;
  760. R=(T0*)C;
  761. }
  762. else {
  763. R=r342twin(C);
  764. /*[IRF3.3set_current_type*/((((T342*)(((T342*)R))))->_current_type)=(a1);
  765. /*]*/
  766. }
  767. /*FI*/return R;
  768. }
  769. /*No:INTEGER_CONSTANT.bracketed_pretty_print*/
  770. int fBC342result_type=0;
  771. T0*oBC342result_type=NULL;
  772. T0* r342result_type(void){
  773. if (fBC342result_type==0){
  774. T0* R=NULL;
  775. fBC342result_type=1;
  776. {T788*n=malloc(sizeof(*n));
  777. *n=M788;
  778. r788make(n,NULL);
  779. R=(T0*)n;
  780. }
  781. oBC342result_type=R;}
  782. return oBC342result_type;}
  783. T0* r342twin(T342* C){
  784. T0* R=NULL;
  785. R=malloc(sizeof(*C));
  786. *((T342*)R)=*C;
  787. return R;
  788. }
  789. /*No:INTEGER_CONSTANT.set_current_type*/
  790. /*No:INTEGER_CONSTANT.atomic_precedence*/
  791. /*No:INTEGER_CONSTANT.pretty_print*/
  792. /*No:INTEGER_CONSTANT.value*/
  793. /*No:INTEGER_CONSTANT.current_type*/
  794. /*No:INTEGER_CONSTANT.is_manifest_string*/
  795. /*No:INTEGER_CONSTANT.is_void*/
  796. T0* r342to_real_constant(T342* C){
  797. T0* R=NULL;
  798. {T936*n=malloc(sizeof(*n));
  799. *n=M936;
  800. r936make(n,(((T342*)C))->_start_position/*8*/,r2to_string((((T342*)C))->_value/*12*/));
  801. R=(T0*)n;
  802. }
  803. return R;
  804. }
  805. void r342error(T0* a1,T0* a2){
  806. r683add_position(a1);
  807. r683error(((T683*)(oBC364eh)),a2);
  808. }
  809. T0* r377to_runnable_integer(T377* C,T0* a1){
  810. T0* R=NULL;
  811. T0* _e_when=NULL;
  812. int _i=0;
  813. /*IF*/if (((((T377*)C))->_e_inspect/*0*/)==((void*)(NULL))) {
  814. C->_e_inspect=a1;
  815. _i=1;
  816. while (!(((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  817. _e_when=r843to_runnable_integer(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))),(T0*)C);
  818. /*IF*/if ((_e_when)==((void*)(NULL))) {
  819. r377error(r377start_position(C),((T0*)ms1_377));
  820. }
  821. else {
  822. /*[IRF3.6put*/{T147* C1=((T147*)((((T377*)C))->_list/*4*/));
  823. T0* b1=_e_when;
  824. int b2=_i;
  825. ((((T147*)C1))->_storage/*0*/)[(b2)-((((T147*)C1))->_lower/*12*/)]=(b1);
  826. }/*]*/
  827. }
  828. /*FI*/_i=(_i)+(1);
  829. }
  830. R=(T0*)C;
  831. }
  832. else {
  833. {T377*n=malloc(sizeof(*n));
  834. *n=M377;
  835. r377from_when_list(n,(T0*)C);
  836. R=(T0*)n;
  837. }
  838. R=r377to_runnable_integer(((T377*)R),a1);
  839. }
  840. /*FI*/return R;
  841. }
  842. /*No:WHEN_LIST.make*/
  843. /*No:WHEN_LIST.nb_errors*/
  844. T0* r377start_position(T377* C){
  845. T0* R=NULL;
  846. R=(((T843*)((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),1)))))->_start_position/*0*/;
  847. return R;
  848. }
  849. /*No:WHEN_LIST.em1*/
  850. void r377pretty_print(T377* C){
  851. int _fmt_mode=0;
  852. int _i=0;
  853. _fmt_mode=(((T238*)((T238*)(oBC364fmt))))->_mode/*4*/;
  854. /*[IRF3.3set_zen*/((((T238*)(((T238*)(oBC364fmt)))))->_mode)=(1);
  855. /*]*/
  856. _i=1;
  857. while (!((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/))) {
  858. r843pretty_print(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))));
  859. _i=(_i)+(1);
  860. /*IF*/if ((_i)<=((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/)) {
  861. r238put_character(((T238*)(oBC364fmt)),'\n');
  862. r238indent(((T238*)(oBC364fmt)));
  863. }
  864. /*FI*/}
  865. /*[IRF3.3set_mode*/((((T238*)(((T238*)(oBC364fmt)))))->_mode)=(_fmt_mode);
  866. /*]*/
  867. }
  868. /*No:WHEN_LIST.list*/
  869. /*No:WHEN_LIST.current_type*/
  870. void r377from_when_list(T377* C,T0* a1){
  871. T0* _e_when=NULL;
  872. int _i=0;
  873. C->_list=r147twin(((T147*)((((T377*)((T377*)a1)))->_list/*4*/)));
  874. _i=1;
  875. while (!((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/))) {
  876. {T843*n=malloc(sizeof(*n));
  877. *n=M843;
  878. r843from_e_when(n,r147item(((T147*)((((T377*)C))->_list/*4*/)),_i));
  879. _e_when=(T0*)n;
  880. }
  881. /*[IRF3.6put*/{T147* C1=((T147*)((((T377*)C))->_list/*4*/));
  882. T0* b1=_e_when;
  883. int b2=_i;
  884. ((((T147*)C1))->_storage/*0*/)[(b2)-((((T147*)C1))->_lower/*12*/)]=(b1);
  885. }/*]*/
  886. _i=(_i)+(1);
  887. }
  888. }
  889. void r377error(T0* a1,T0* a2){
  890. r683add_position(a1);
  891. r683error(((T683*)(oBC364eh)),a2);
  892. }
  893. /*No:WHEN_LIST.add_last*/
  894. int r377includes_integer(T377* C,int a1){
  895. int R=0;
  896. int _i=0;
  897. _i=1;
  898. while (!((R)||((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/)))) {
  899. R=r843includes_integer(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))),a1);
  900. _i=(_i)+(1);
  901. }
  902. return R;
  903. }
  904. T0* r377to_runnable_character(T377* C,T0* a1){
  905. T0* R=NULL;
  906. T0* _e_when=NULL;
  907. int _i=0;
  908. /*IF*/if (((((T377*)C))->_e_inspect/*0*/)==((void*)(NULL))) {
  909. C->_e_inspect=a1;
  910. _i=1;
  911. while (!(((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  912. _e_when=r843to_runnable_character(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))),(T0*)C);
  913. /*IF*/if ((_e_when)==((void*)(NULL))) {
  914. r377error(r377start_position(C),((T0*)ms1_377));
  915. }
  916. else {
  917. /*[IRF3.6put*/{T147* C1=((T147*)((((T377*)C))->_list/*4*/));
  918. T0* b1=_e_when;
  919. int b2=_i;
  920. ((((T147*)C1))->_storage/*0*/)[(b2)-((((T147*)C1))->_lower/*12*/)]=(b1);
  921. }/*]*/
  922. }
  923. /*FI*/_i=(_i)+(1);
  924. }
  925. R=(T0*)C;
  926. }
  927. else {
  928. {T377*n=malloc(sizeof(*n));
  929. *n=M377;
  930. r377from_when_list(n,(T0*)C);
  931. R=(T0*)n;
  932. }
  933. R=r377to_runnable_character(((T377*)R),a1);
  934. }
  935. /*FI*/return R;
  936. }
  937. /*No:WHEN_LIST.e_inspect*/
  938. /*No:ERROR_HANDLER.nb_warnings*/
  939. T0*oBC683explanation=NULL;
  940. void r683incr_nb_warnings(T683* C){
  941. C->_nb_warnings=((((T683*)C))->_nb_warnings/*4*/)+(1);
  942. }
  943. /*No:ERROR_HANDLER.extend*/
  944. void r683incr_nb_errors(T683* C){
  945. C->_nb_errors=((((T683*)C))->_nb_errors/*0*/)+(1);
  946. /*IF*/if (((((T683*)C))->_nb_errors/*0*/)>=(6)) {
  947. r441put_string(((T441*)(oBC1std_error)),((T0*)ms75_470));
  948. r441put_string(((T441*)(oBC1std_error)),((T0*)ms5_683));
  949. exit(1);
  950. }
  951. /*FI*/}
  952. /*No:ERROR_HANDLER.exit_failure_code*/
  953. /*No:ERROR_HANDLER.make*/
  954. /*No:ERROR_HANDLER.nb_errors*/
  955. void r683print_as_fatal_error(T683* C){
  956. r683do_print(((T0*)ms4_683));
  957. exit(1);
  958. }
  959. /*No:ERROR_HANDLER.no_warning*/
  960. void r683add_position(T0* a1){
  961. /*IF*/if ((a1)!=((void*)(NULL))) {
  962. /*IF*/if (!(r38has(((T38*)(oBC683positions)),a1))) {
  963. r38add_last(((T38*)(oBC683positions)),a1);
  964. }
  965. /*FI*/}
  966. /*FI*/}
  967. /*No:ERROR_HANDLER.set_no_warning*/
  968. void r683print_as_warning(T683* C){
  969. /*IF*/if ((((T683*)C))->_no_warning/*8*/) {
  970. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  971. /*]*/
  972. r38clear(((T38*)(oBC683positions)));
  973. /*]*/
  974. }
  975. else {
  976. r683do_print(((T0*)ms2_683));
  977. r683incr_nb_warnings(C);
  978. }
  979. /*FI*/}
  980. void r683add_type(T0* a1,T0* a2){
  981. /*[IRF3.6append*/{T0* b1=((T0*)ms1_683);
  982. r7append(((T7*)(oBC683explanation)),b1);
  983. }/*]*/
  984. /*IF*/if (X291is_run_type(a1)) {
  985. /*[IRF3.6append*/{T0* b1=X291run_time_mark(a1);
  986. r7append(((T7*)(oBC683explanation)),b1);
  987. }/*]*/
  988. }
  989. else {
  990. /*[IRF3.6append*/{T0* b1=X291written_mark(a1);
  991. r7append(((T7*)(oBC683explanation)),b1);
  992. }/*]*/
  993. }
  994. /*FI*//*[IRF3.6append*/{T0* b1=a2;
  995. r7append(((T7*)(oBC683explanation)),b1);
  996. }/*]*/
  997. r683add_position(X291start_position(a1));
  998. }
  999. void r683print_as_error(T683* C){
  1000. r683do_print(((T0*)ms3_683));
  1001. r683incr_nb_errors(C);
  1002. }
  1003. void r683error(T683* C,T0* a1){
  1004. /*[IRF3.6append*/{T0* b1=a1;
  1005. r7append(((T7*)(oBC683explanation)),b1);
  1006. }/*]*/
  1007. r683print_as_error(C);
  1008. }
  1009. /*No:ERROR_HANDLER.fz_error_stars*/
  1010. void r683fatal_error(T683* C,T0* a1){
  1011. r7append(((T7*)(oBC683explanation)),a1);
  1012. r683print_as_fatal_error(C);
  1013. }
  1014. /*No:ERROR_HANDLER.cancel*/
  1015. T0*oBC683positions=NULL;
  1016. /*No:ERROR_HANDLER.append*/
  1017. void r683warning(T683* C,T0* a1){
  1018. /*[IRF3.6append*/{T0* b1=a1;
  1019. r7append(((T7*)(oBC683explanation)),b1);
  1020. }/*]*/
  1021. r683print_as_warning(C);
  1022. }
  1023. void r683do_print(T0* a1){
  1024. char _previous_cc=0;
  1025. char _cc=0;
  1026. int _cpt=0;
  1027. int _i=0;
  1028. r441put_string(((T441*)(oBC1std_error)),((T0*)ms75_470));
  1029. r441put_string(((T441*)(oBC1std_error)),a1);
  1030. r441put_string(((T441*)(oBC1std_error)),((T0*)ms6_683));
  1031. _i=1;
  1032. _cpt=(9)+((((T7*)((T7*)a1)))->_count/*4*/);
  1033. while (!((_i)>((((T7*)((T7*)(oBC683explanation))))->_count/*4*/))) {
  1034. _previous_cc=_cc;
  1035. _cc=/*(IRF4.6item*/((((T7*)((T7*)(oBC683explanation))))->_storage/*0*/)[(_i)-(1)]/*)*/;
  1036. _i=(_i)+(1);
  1037. /*IF*/if ((_cpt)>(60)) {
  1038. /*IF*/if ((_cc)==('\40')) {
  1039. /*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
  1040. char b1='\n';
  1041. putc(b1,((FILE*)(stderr)));
  1042. }/*]*/
  1043. _cpt=0;
  1044. }
  1045.  else if (((_previous_cc)==('\54'))||((_previous_cc)==('\57'))) {
  1046. /*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
  1047. char b1='\n';
  1048. putc(b1,((FILE*)(stderr)));
  1049. }/*]*/
  1050. /*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
  1051. char b1=_cc;
  1052. putc(b1,((FILE*)(stderr)));
  1053. }/*]*/
  1054. _cpt=1;
  1055. }
  1056. else {
  1057. /*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
  1058. char b1=_cc;
  1059. putc(b1,((FILE*)(stderr)));
  1060. }/*]*/
  1061. _cpt=(_cpt)+(1);
  1062. }
  1063. /*FI*/}
  1064. else {
  1065. /*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
  1066. char b1=_cc;
  1067. putc(b1,((FILE*)(stderr)));
  1068. }/*]*/
  1069. {int z1=_cc;
  1070.  
  1071. if((10==z1)){
  1072. _cpt=0;
  1073. }
  1074.  else{_cpt=(_cpt)+(1);
  1075. }}
  1076. }
  1077. /*FI*/}
  1078. /*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
  1079. char b1='\n';
  1080. putc(b1,((FILE*)(stderr)));
  1081. }/*]*/
  1082. _i=(((T38*)((T38*)(oBC683positions))))->_lower/*12*/;
  1083. while (!((_i)>((((T38*)((T38*)(oBC683positions))))->_upper/*8*/))) {
  1084. r627show(((T627*)(r38item(((T38*)(oBC683positions)),_i))));
  1085. _i=(_i)+(1);
  1086. }
  1087. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  1088. /*]*/
  1089. r38clear(((T38*)(oBC683positions)));
  1090. /*]*/
  1091. r441put_string(((T441*)(oBC1std_error)),((T0*)ms7_683));
  1092. }
  1093. T0* r990add_comment(T990* C,T0* a1){
  1094. T0* R=NULL;
  1095. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1096. R=(T0*)C;
  1097. }
  1098. else {
  1099. {T529*n=malloc(sizeof(*n));
  1100. *n=M529;
  1101. r529make(n,(T0*)C,a1);
  1102. R=(T0*)n;
  1103. }
  1104. }
  1105. /*FI*/return R;
  1106. }
  1107. int r990to_integer(T990* C){
  1108. int R=0;
  1109. T0* _rf1=NULL;
  1110. _rf1=(((T990*)C))->_run_feature/*12*/;
  1111. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  1112. case 808: 
  1113. break;
  1114. default:
  1115. _rf1=NULL;
  1116. };/*IF*/if ((_rf1)==((void*)(NULL))) {
  1117. r990error(/*(IRF4.6start_position*/(((T406*)((T406*)((((T990*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1118. }
  1119. else {
  1120. R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*36*/);
  1121. }
  1122. /*FI*/return R;
  1123. }
  1124. int r990is_a(T990* C,T0* a1){
  1125. int R=0;
  1126. R=X291is_a(X291run_type((((T990*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  1127. /*IF*/if (!(R)) {
  1128. r683add_position(/*(IRF4.6start_position*/(((T406*)((T406*)((((T990*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/);
  1129. r990error(X662start_position(a1),((T0*)ms4_662));
  1130. }
  1131. /*FI*/return R;
  1132. }
  1133. /*No:CALL_PREFIX_FREEOP.is_current*/
  1134. /*No:CALL_PREFIX_FREEOP.make*/
  1135. void r990print_as_target(T990* C){
  1136. r238put_character(((T238*)(oBC364fmt)),'\50');
  1137. r990pretty_print(C);
  1138. r238put_character(((T238*)(oBC364fmt)),'\51');
  1139. r238put_character(((T238*)(oBC364fmt)),'\56');
  1140. }
  1141. /*No:CALL_PREFIX_FREEOP.nb_errors*/
  1142. /*No:CALL_PREFIX_FREEOP.feature_name*/
  1143. /*No:CALL_PREFIX_FREEOP.fz_iinaiv*/
  1144. /*No:CALL_PREFIX_FREEOP.run_feature*/
  1145. /*No:CALL_PREFIX_FREEOP.start_position*/
  1146. /*No:CALL_PREFIX_FREEOP.target*/
  1147. /*No:CALL_PREFIX_FREEOP.precedence*/
  1148. T0* r990to_runnable(T990* C,T0* a1){
  1149. T0* R=NULL;
  1150. /*IF*/if (((((T990*)C))->_current_type/*4*/)==((void*)(NULL))) {
  1151. r990to_runnable_0(C,a1);
  1152. /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T990*)C))->_run_feature/*12*/))>(0))) {
  1153. r683add_position((((T406*)((T406*)((((T990*)C))->_feature_name/*20*/))))->_start_position/*8*/);
  1154. r990error(X496start_position((((T990*)C))->_run_feature/*12*/),((T0*)ms1_752));
  1155. }
  1156. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1157. R=(T0*)C;
  1158. }
  1159. /*FI*/}
  1160. else {
  1161. R=r990twin(C);
  1162. /*[IRF3.3set_current_type*/((((T990*)(((T990*)R))))->_current_type)=(NULL);
  1163. /*]*/
  1164. R=r990to_runnable(((T990*)R),a1);
  1165. }
  1166. /*FI*/return R;
  1167. }
  1168. void r990bracketed_pretty_print(T990* C){
  1169. r238put_character(((T238*)(oBC364fmt)),'\50');
  1170. r990pretty_print(C);
  1171. r238put_character(((T238*)(oBC364fmt)),'\51');
  1172. }
  1173. /*No:CALL_PREFIX_FREEOP.result_type*/
  1174. T0* r990twin(T990* C){
  1175. T0* R=NULL;
  1176. R=malloc(sizeof(*C));
  1177. *((T990*)R)=*C;
  1178. return R;
  1179. }
  1180. /*No:CALL_PREFIX_FREEOP.set_current_type*/
  1181. void r990pretty_print(T990* C){
  1182. /*[IRF3.6pretty_print*/{T406* C1=((T406*)((((T990*)C))->_feature_name/*20*/));
  1183. r238put_string(((T238*)(oBC364fmt)),(((T406*)C1))->_to_string/*4*/);
  1184. }/*]*/
  1185. r238put_character(((T238*)(oBC364fmt)),'\40');
  1186. /*IF*/if ((X662precedence((((T990*)C))->_target/*8*/))<(11)) {
  1187. r238put_character(((T238*)(oBC364fmt)),'\50');
  1188. X662pretty_print((((T990*)C))->_target/*8*/);
  1189. r238put_character(((T238*)(oBC364fmt)),'\51');
  1190. }
  1191. else {
  1192. X662pretty_print((((T990*)C))->_target/*8*/);
  1193. }
  1194. /*FI*/}
  1195. /*No:CALL_PREFIX_FREEOP.current_type*/
  1196. /*No:CALL_PREFIX_FREEOP.is_manifest_string*/
  1197. /*No:CALL_PREFIX_FREEOP.is_void*/
  1198. void r990to_runnable_0(T990* C,T0* a1){
  1199. C->_current_type=a1;
  1200. r990cpc_to_runnable(C,a1);
  1201. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T990*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  1202. /*IF*/if (((((T990*)C))->_result_type/*16*/)==((void*)(NULL))) {
  1203. r683add_position(X496start_position((((T990*)C))->_run_feature/*12*/));
  1204. r990error((((T406*)((T406*)((((T990*)C))->_feature_name/*20*/))))->_start_position/*8*/,((T0*)ms1_295));
  1205. }
  1206.  else if (X291is_like_current((((T990*)C))->_result_type/*16*/)) {
  1207. C->_result_type=X662result_type((((T990*)C))->_target/*8*/);
  1208. }
  1209. /*FI*/}
  1210. void r990cpc_to_runnable(T990* C,T0* a1){
  1211. T0* _rc=NULL;
  1212. T0* _t=NULL;
  1213. _t=X662to_runnable((((T990*)C))->_target/*8*/,a1);
  1214. /*IF*/if ((_t)==((void*)(NULL))) {
  1215. r683add_position(X662start_position((((T990*)C))->_target/*8*/));
  1216. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1217. r683fatal_error(((T683*)(oBC364eh)),b1);
  1218. }/*]*/
  1219. }
  1220. /*FI*/C->_target=_t;
  1221. _rc=X291run_class(X662result_type((((T990*)C))->_target/*8*/));
  1222. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  1223. r576update((((T990*)C))->_target/*8*/,(((T990*)C))->_run_feature/*12*/);
  1224. }
  1225. void r990make_call0(T990* C,T0* a1,T0* a2){
  1226. C->_target=a1;
  1227. C->_feature_name=a2;
  1228. }
  1229. void r990error(T0* a1,T0* a2){
  1230. r683add_position(a1);
  1231. r683error(((T683*)(oBC364eh)),a2);
  1232. }
  1233. /*No:CALL_PREFIX_FREEOP.fatal_error*/
  1234. T0* r849add_comment(T849* C,T0* a1){
  1235. T0* R=NULL;
  1236. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1237. R=(T0*)C;
  1238. }
  1239. else {
  1240. {T529*n=malloc(sizeof(*n));
  1241. *n=M529;
  1242. r529make(n,(T0*)C,a1);
  1243. R=(T0*)n;
  1244. }
  1245. }
  1246. /*FI*/return R;
  1247. }
  1248. /*No:E_TRUE.to_integer*/
  1249. int r849is_a(T849* C,T0* a1){
  1250. int R=0;
  1251. R=X291is_a(/*(IRF4.4run_type*/((T0*)((T707*)/*(IRF4.8result_type*/r849type_boolean()/*)*/))/*)*/,X291run_type(X662result_type(a1)));
  1252. /*IF*/if (!(R)) {
  1253. r683add_position((((T849*)C))->_start_position/*8*/);
  1254. r849error(X662start_position(a1),((T0*)ms4_662));
  1255. }
  1256. /*FI*/return R;
  1257. }
  1258. /*No:E_TRUE.is_current*/
  1259. int fBC364type_boolean=0;
  1260. T0*oBC364type_boolean=NULL;
  1261. T0* r849type_boolean(void){
  1262. if (fBC364type_boolean==0){
  1263. T0* R=NULL;
  1264. fBC364type_boolean=1;
  1265. {T707*n=malloc(sizeof(*n));
  1266. *n=M707;
  1267. r707make(n,NULL);
  1268. R=(T0*)n;
  1269. }
  1270. oBC364type_boolean=R;}
  1271. return oBC364type_boolean;}
  1272. /*No:E_TRUE.make*/
  1273. /*No:E_TRUE.print_as_target*/
  1274. T0* r849to_string(void){
  1275. T0* R=NULL;
  1276. R=((T0*)ms47_470);
  1277. return R;
  1278. }
  1279. /*No:E_TRUE.fz_iinaiv*/
  1280. /*No:E_TRUE.start_position*/
  1281. /*No:E_TRUE.fz_true*/
  1282. /*No:E_TRUE.precedence*/
  1283. T0* r849to_runnable(T849* C,T0* a1){
  1284. T0* R=NULL;
  1285. /*IF*/if (((((T849*)C))->_current_type/*4*/)==((void*)(NULL))) {
  1286. C->_current_type=a1;
  1287. R=(T0*)C;
  1288. }
  1289. else {
  1290. R=r849twin(C);
  1291. /*[IRF3.3set_current_type*/((((T849*)(((T849*)R))))->_current_type)=(a1);
  1292. /*]*/
  1293. }
  1294. /*FI*/return R;
  1295. }
  1296. /*No:E_TRUE.bracketed_pretty_print*/
  1297. /*No:E_TRUE.result_type*/
  1298. T0* r849twin(T849* C){
  1299. T0* R=NULL;
  1300. R=malloc(sizeof(*C));
  1301. *((T849*)R)=*C;
  1302. return R;
  1303. }
  1304. /*No:E_TRUE.set_current_type*/
  1305. /*No:E_TRUE.atomic_precedence*/
  1306. /*No:E_TRUE.pretty_print*/
  1307. /*No:E_TRUE.current_type*/
  1308. /*No:E_TRUE.is_manifest_string*/
  1309. /*No:E_TRUE.is_void*/
  1310. void r849error(T0* a1,T0* a2){
  1311. r683add_position(a1);
  1312. r683error(((T683*)(oBC364eh)),a2);
  1313. }
  1314. /*No:ID_PROVIDER.us_integer*/
  1315. void r410make(T410* C){
  1316. {T226*n=malloc(sizeof(*n));
  1317. *n=M226;
  1318. r226with_capacity(n,1024);
  1319. C->_mem_id=(T0*)n;
  1320. }
  1321. {T927*n=malloc(sizeof(*n));
  1322. *n=M927;
  1323. r927with_capacity(n,1024);
  1324. C->_mem_str=(T0*)n;
  1325. }
  1326. C->_modulus=1000;
  1327. r410add2(C,NULL,0);
  1328. r410add2(C,((T0*)ms14_473),1);
  1329. r410add2(C,((T0*)ms15_473),2);
  1330. r410add2(C,((T0*)ms8_473),3);
  1331. r410add2(C,((T0*)ms23_473),4);
  1332. r410add2(C,((T0*)ms11_473),5);
  1333. r410add2(C,((T0*)ms6_473),6);
  1334. r410add2(C,((T0*)ms25_473),7);
  1335. r410add2(C,((T0*)ms21_473),8);
  1336. r410add2(C,((T0*)ms144_473),9);
  1337. r410add2(C,NULL,10);
  1338. r410add2(C,NULL,11);
  1339. r410add2(C,NULL,12);
  1340. r410add2(C,NULL,13);
  1341. r410add2(C,NULL,14);
  1342. r410add2(C,NULL,15);
  1343. r410add2(C,NULL,16);
  1344. r410add2(C,NULL,17);
  1345. r410add2(C,NULL,18);
  1346. r410add2(C,NULL,19);
  1347. r410add2(C,NULL,20);
  1348. }
  1349. /*No:ID_PROVIDER.us_pointer*/
  1350. /*No:ID_PROVIDER.us_string*/
  1351. int r410item(T410* C,T0* a1){
  1352. int R=0;
  1353. int _index=0;
  1354. _index=r927fast_index_of(((T927*)((((T410*)C))->_mem_str/*4*/)),a1);
  1355. /*IF*/if ((_index)<=((((T927*)((T927*)((((T410*)C))->_mem_str/*4*/))))->_upper/*8*/)) {
  1356. R=/*(IRF4.6item*/((((T226*)((T226*)((((T410*)C))->_mem_id/*0*/))))->_storage/*0*/)[_index]/*)*/;
  1357. }
  1358. else {
  1359. /*IF*/if ((((((T927*)((T927*)((((T410*)C))->_mem_str/*4*/))))->_upper/*8*/)*(2))>((((T410*)C))->_modulus/*8*/)) {
  1360. C->_modulus=((((T410*)C))->_modulus/*8*/)*(2);
  1361. }
  1362. /*FI*/R=(r7hash_code(((T7*)a1)))%((((T410*)C))->_modulus/*8*/);
  1363. /*IF*/if (r226fast_has(((T226*)((((T410*)C))->_mem_id/*0*/)),R)) {
  1364. while (!(!(r226fast_has(((T226*)((((T410*)C))->_mem_id/*0*/)),R)))) {
  1365. R=((R)+(13))%((((T410*)C))->_modulus/*8*/);
  1366. }
  1367. r410add2(C,a1,R);
  1368. }
  1369. else {
  1370. r410add2(C,a1,R);
  1371. }
  1372. /*FI*/}
  1373. /*FI*/return R;
  1374. }
  1375. /*No:ID_PROVIDER.us_character*/
  1376. /*No:ID_PROVIDER.us_real*/
  1377. /*No:ID_PROVIDER.us_boolean*/
  1378. /*No:ID_PROVIDER.us_double*/
  1379. /*No:ID_PROVIDER.mem_id*/
  1380. /*No:ID_PROVIDER.modulus*/
  1381. /*No:ID_PROVIDER.us_native_array_character*/
  1382. void r410add2(T410* C,T0* a1,int a2){
  1383. r927add_last(((T927*)((((T410*)C))->_mem_str/*4*/)),a1);
  1384. r226add_last(((T226*)((((T410*)C))->_mem_id/*0*/)),a2);
  1385. }
  1386. /*No:ID_PROVIDER.mem_str*/
  1387. /*No:ID_PROVIDER.us_general*/
  1388.  
  1389.